package com.java.thread;

/**
 * 多线程的创建，方式二：实现 Runnable 接口
 *
 *      1. 创建一个实现 Runnable 接口的类。
 *      2. 实现类去实现 Runnable 接口中的抽象方法：run()。
 *      3. 创建实现类的对象。
 *      4. 将此对象作为参数传到 Thread 类的构造器中，创建 Thread 类的对象。
 *      5. 通过 Thread 类的对象调用 start() 方法。
 */
public class RunnableThreadDemo {
    public static void main(String[] args) {
        // 01. 创建实现类的对象
        RunnableThread01 runnableThread01 = new RunnableThread01();
        // 02. 创建 Thread 类的对象,并将实现类的对象当做参数传入构造器
        Thread t1 = new Thread(runnableThread01);
        // 03. 使用 Thread 类的对象去调用 Thread 类的 start() 方法:   ①启动了线程    ②Thread 中的 run() 调用了 Runnable 中的 run()
        t1.start();

        // 04. 在创建一个线程时，只需要 new 一个 Thread 类就可,不需要 new 实现类
        Thread t2 = new Thread(runnableThread01);
        t2.start();
    }
}

//  RunnableThread01 实现 Runnable 接口的 run() 抽象方法
class RunnableThread01 implements Runnable {
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if (i % 2 == 0) System.out.println(Thread.currentThread().getName() + ":\t" + i);
        }
    }
}
